<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>NetSurf | Development Information</title>
<link rel="stylesheet" type="text/css" href="netsurf">
</head>

<body>
<p class="banner"><a href="intro_en"><img src="netsurf_png" alt="NetSurf: Web Browser for RISC OS"></a></p>

<h1>Development Information</h1>

<p>This page contains various information for developers or anyone interested
in contributing to NetSurf.</p>


<h2>Subversion</h2>

<p>The source is kept in a Subversion repository. To check the source out
use the command:</p>

<p><code>$ <strong>svn checkout svn://svn.netsurf-browser.org/trunk/netsurf</strong>
</code></p>

<p>There is a <a href="http://source.netsurf-browser.org/trunk/netsurf/">web
interface</a> to the repository.
Recent changes can be seen on the
<a href="http://netsurf-browser.org/builds/">autobuilder</a>
and on the
<a href="http://cia.navi.cx/stats/project/NetSurf/">CIA
Open Source Notification System</a>.
An <a href="http://cia.navi.cx/stats/project/NetSurf/.rss">RSS feed of
changes</a> is available.
Checkins are reported on <abbr title="Internet Relay Chat">IRC</abbr> in
real-time on <code>#netsurf</code> on
<a href="http://freenode.net/">FreeNode</a>, and to the
<a href="http://vlists.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org">NetSurf Commits</a> mailing list.</p>

<p>Contact <a href="mailto:james&#64;semichrome.net">James</a> to get write
access.</p>


<h2>Compiling</h2>

<p>The recommended compiler is <a href="http://gccsdk.riscos.info/">gcc</a>,
either native or cross-compiling from Linux or Unix using gccsdk. A guide to
<a href="robuild_en">building NetSurf on RISC OS</a> is available, as are
<a href="http://netsurf.strcprstskrzkrk.co.uk/developer/">pre-compiled ports</a>
of the required libraries.</p>

<p>The <a href="http://netsurf-browser.org/builds/">autobuilder</a> compiles
NetSurf every 15 minutes if changes have been checked into SVN.</p>

<p>A debug version of NetSurf can be built. This is command-line only and does
not include any of gui code, but runs natively on Linux so can be debugged and
checked using gdb, efence, valgrind, etc.</p>

<h3>Dependencies</h3>

<p>In addition to the compiler, NetSurf requires a number of additional tools to be available. These are enumerated below. Additionally, the libraries which NetSurf uses are also listed</p>

<h4>Tools</h4>
<ul>
<li>Lemon parser generator (<a href="http://www.hwaci.com/sw/lemon/">http://www.hwaci.com/sw/lemon/</a>)</li>
<li>re2c lexer (<a href="http://re2c.org/">http://re2c.org/</a>)</li>
</ul>

<h4>Libraries</h4>
<ul>
<li>cAres &amp; cURL (<a href="http://curl.haxx.se/libcurl/">http://curl.haxx.se/libcurl/</a>)</li>
<li>IJG JPEG library (<a href="http://www.ijg.org/">http://www.ijg.org/</a>)</li>
<li>MNG decoding library (<a href="http://www.libmng.com/">http://www.libmng.com/</a>)</li>
<li>OpenSSL (<a href="http://www.openssl.org/">http://www.openssl.org/</a>)</li>
<li>libXML 2 (<a href="http://www.xmlsoft.org/">http://www.xmlsoft.org/</a>)</li>
<li>Zlib (<a href="http://www.zlib.org/">http://www.zlib.org</a>)</li>
</ul>

<h5>RISC OS specific libraries</h5>
<ul>
<li>OSLib 6.80 or later (<a href="http://ro-oslib.sf.net/">http://ro-oslib.sf.net</a>)</li>
<li>Pencil (<a href="http://source.netsurf-browser.org/trunk/pencil/">http://source.netsurf-browser.org/trunk/pencil/</a>)</li>
<li>RUfl (<a href="http://zamez.org/rufl">http://zamez.org/rufl</a>)</li>
</ul>


<h2>Source Documentation</h2>

<p>The source is documented using <a href="http://www.doxygen.org/">Doxygen</a>
(<a href="http://www.ecs.soton.ac.uk/~jmb202/">RISC OS port</a>). Use
<code>doxygen Docs/Doxyfile</code> to generate the documentation from the source
tree, or <a href="http://netsurf.strcprstskrzkrk.co.uk/codedocs/">view the
latest documentation</a> generated on the autobuilder.</p>


<h2><abbr title="Internet Relay Chat">IRC</abbr></h2>

<p>The main method of communication between the developers is <abbr
title="Internet Relay Chat">IRC</abbr>. Join the <code>#netsurf</code> channel
on <a href="http://freenode.net/">Freenode</a>.</p>


<h2>Translations</h2>

<p>Translations of NetSurf to other languages are welcome. No programming
knowledge is required, just the ability to use a template editor and a text
editor. Please see the <a href="translations_en">translations page</a> for more
information.</p>


<div class="footer">
<p class="breadcrumbs"><a href="intro_en">NetSurf</a> » Development Information</p>
<p class="sourceforge"><a href="http://sourceforge.net/"><img
src="http://sourceforge.net/sflogo.php?group_id=51719&amp;type=1"
alt="SourceForge.net"></a></p>
</div>


</body>
</html>
